package de.sabram.upb.specs.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import de.sabram.upb.specs.services.GlaGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalGlaParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_REGEX", "RULE_IDENTIFIER", "RULE_REGEX_BODY", "RULE_REGEX_STRING", "RULE_REGEX_DIGIT", "RULE_REGEX_CARDINALITY", "RULE_REGEX_SYMBOL", "RULE_STRING", "RULE_ML_COMMENT", "RULE_WS", "RULE_ID", "RULE_INT", "RULE_SL_COMMENT", "RULE_ANY_OTHER", "':'", "'('", "')'", "'['", "']'", "'ADA_COMMENT'", "'ADA_IDENTIFIER'", "'AWK_COMMENT'", "'C_COMMENT'", "'C_CHAR_CONSTANT'", "'C_FLOAT'", "'C_IDENTIFIER'", "'C_INTEGER'", "'C_INT_DENOTATION'", "'C_STRING_LIT'", "'MODULA_INTEGER'", "'MODULA2_COMMENT'", "'MODULA3_COMMENT'", "'MODULA2_CHARINT'", "'MODULA2_INTEGER'", "'MODULA2_LITERALDQ'", "'MODULA2_LITERALSQ'", "'PASCAL_COMMENT'", "'PASCAL_IDENTIFIER'", "'PASCAL_INTEGER'", "'PASCAL_REAL'", "'PASCAL_STRING'", "'SPACES'", "'TAB'", "'NEW_LINE'", "'auxEOF'", "'coordAdjust'", "'auxNewLine'", "'auxTab'", "'auxEOL'", "'auxPascalString'", "'auxPascalComment'", "'auxNoEOL'", "'auxCString'", "'auxCChar'", "'auxCComment'", "'auxM2String'", "'auxM3Comment'", "'Ctext'", "'c_mkchar'", "'c_mkint'", "'c_mkstr'", "'EndOfText'", "'lexerr'", "'mkidn'", "'mkint'", "'mkstr'", "'modula_mkint'"
    };
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int RULE_ID=14;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int T__64=64;
    public static final int T__29=29;
    public static final int T__65=65;
    public static final int T__28=28;
    public static final int T__62=62;
    public static final int T__27=27;
    public static final int T__63=63;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=17;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int RULE_REGEX_BODY=6;
    public static final int T__61=61;
    public static final int T__60=60;
    public static final int EOF=-1;
    public static final int RULE_REGEX_SYMBOL=10;
    public static final int RULE_REGEX=4;
    public static final int T__55=55;
    public static final int T__19=19;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__18=18;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int RULE_REGEX_DIGIT=8;
    public static final int T__59=59;
    public static final int RULE_INT=15;
    public static final int T__50=50;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int RULE_REGEX_STRING=7;
    public static final int RULE_IDENTIFIER=5;
    public static final int RULE_SL_COMMENT=16;
    public static final int RULE_ML_COMMENT=12;
    public static final int RULE_REGEX_CARDINALITY=9;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=11;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__70=70;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=13;

    // delegates
    // delegators


        public InternalGlaParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalGlaParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalGlaParser.tokenNames; }
    public String getGrammarFileName() { return "../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g"; }



     	private GlaGrammarAccess grammarAccess;
     	
        public InternalGlaParser(TokenStream input, GlaGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "File";	
       	}
       	
       	@Override
       	protected GlaGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleFile"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:67:1: entryRuleFile returns [EObject current=null] : iv_ruleFile= ruleFile EOF ;
    public final EObject entryRuleFile() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleFile = null;


         
        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS", "RULE_ML_COMMENT");
        	
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:71:2: (iv_ruleFile= ruleFile EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:72:2: iv_ruleFile= ruleFile EOF
            {
             newCompositeNode(grammarAccess.getFileRule()); 
            pushFollow(FOLLOW_ruleFile_in_entryRuleFile81);
            iv_ruleFile=ruleFile();

            state._fsp--;

             current =iv_ruleFile; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleFile91); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {

            	myHiddenTokenState.restore();

        }
        return current;
    }
    // $ANTLR end "entryRuleFile"


    // $ANTLR start "ruleFile"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:82:1: ruleFile returns [EObject current=null] : ( (lv_specifications_0_0= ruleSpecification ) )* ;
    public final EObject ruleFile() throws RecognitionException {
        EObject current = null;

        EObject lv_specifications_0_0 = null;


         enterRule(); 
        		HiddenTokens myHiddenTokenState = ((XtextTokenStream)input).setHiddenTokens("RULE_WS", "RULE_ML_COMMENT");
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:86:28: ( ( (lv_specifications_0_0= ruleSpecification ) )* )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:87:1: ( (lv_specifications_0_0= ruleSpecification ) )*
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:87:1: ( (lv_specifications_0_0= ruleSpecification ) )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>=RULE_REGEX && LA1_0<=RULE_IDENTIFIER)||(LA1_0>=23 && LA1_0<=47)) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:88:1: (lv_specifications_0_0= ruleSpecification )
            	    {
            	    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:88:1: (lv_specifications_0_0= ruleSpecification )
            	    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:89:3: lv_specifications_0_0= ruleSpecification
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getFileAccess().getSpecificationsSpecificationParserRuleCall_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleSpecification_in_ruleFile140);
            	    lv_specifications_0_0=ruleSpecification();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getFileRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"specifications",
            	            		lv_specifications_0_0, 
            	            		"Specification");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {

            	myHiddenTokenState.restore();

        }
        return current;
    }
    // $ANTLR end "ruleFile"


    // $ANTLR start "entryRuleSpecification"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:116:1: entryRuleSpecification returns [EObject current=null] : iv_ruleSpecification= ruleSpecification EOF ;
    public final EObject entryRuleSpecification() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSpecification = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:117:2: (iv_ruleSpecification= ruleSpecification EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:118:2: iv_ruleSpecification= ruleSpecification EOF
            {
             newCompositeNode(grammarAccess.getSpecificationRule()); 
            pushFollow(FOLLOW_ruleSpecification_in_entryRuleSpecification180);
            iv_ruleSpecification=ruleSpecification();

            state._fsp--;

             current =iv_ruleSpecification; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSpecification190); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSpecification"


    // $ANTLR start "ruleSpecification"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:125:1: ruleSpecification returns [EObject current=null] : ( (this_TokenName_0= ruleTokenName otherlv_1= ':' )? ( (lv_pattern_2_0= rulePattern ) ) (otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')' )? (otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']' )? ) ;
    public final EObject ruleSpecification() throws RecognitionException {
        EObject current = null;

        Token otherlv_1=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_8=null;
        EObject this_TokenName_0 = null;

        EObject lv_pattern_2_0 = null;

        EObject lv_auxiliaryScannerName_4_0 = null;

        EObject lv_tokenProcessorName_7_0 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:128:28: ( ( (this_TokenName_0= ruleTokenName otherlv_1= ':' )? ( (lv_pattern_2_0= rulePattern ) ) (otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')' )? (otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']' )? ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:129:1: ( (this_TokenName_0= ruleTokenName otherlv_1= ':' )? ( (lv_pattern_2_0= rulePattern ) ) (otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')' )? (otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']' )? )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:129:1: ( (this_TokenName_0= ruleTokenName otherlv_1= ':' )? ( (lv_pattern_2_0= rulePattern ) ) (otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')' )? (otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']' )? )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:129:2: (this_TokenName_0= ruleTokenName otherlv_1= ':' )? ( (lv_pattern_2_0= rulePattern ) ) (otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')' )? (otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']' )?
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:129:2: (this_TokenName_0= ruleTokenName otherlv_1= ':' )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==RULE_IDENTIFIER) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:130:5: this_TokenName_0= ruleTokenName otherlv_1= ':'
                    {
                     
                            newCompositeNode(grammarAccess.getSpecificationAccess().getTokenNameParserRuleCall_0_0()); 
                        
                    pushFollow(FOLLOW_ruleTokenName_in_ruleSpecification238);
                    this_TokenName_0=ruleTokenName();

                    state._fsp--;

                     
                            current = this_TokenName_0; 
                            afterParserOrEnumRuleCall();
                        
                    otherlv_1=(Token)match(input,18,FOLLOW_18_in_ruleSpecification249); 

                        	newLeafNode(otherlv_1, grammarAccess.getSpecificationAccess().getColonKeyword_0_1());
                        

                    }
                    break;

            }

            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:142:3: ( (lv_pattern_2_0= rulePattern ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:143:1: (lv_pattern_2_0= rulePattern )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:143:1: (lv_pattern_2_0= rulePattern )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:144:3: lv_pattern_2_0= rulePattern
            {
             
            	        newCompositeNode(grammarAccess.getSpecificationAccess().getPatternPatternParserRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_rulePattern_in_ruleSpecification272);
            lv_pattern_2_0=rulePattern();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getSpecificationRule());
            	        }
                   		set(
                   			current, 
                   			"pattern",
                    		lv_pattern_2_0, 
                    		"Pattern");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:160:2: (otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')' )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==19) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:160:4: otherlv_3= '(' ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) ) otherlv_5= ')'
                    {
                    otherlv_3=(Token)match(input,19,FOLLOW_19_in_ruleSpecification285); 

                        	newLeafNode(otherlv_3, grammarAccess.getSpecificationAccess().getLeftParenthesisKeyword_2_0());
                        
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:164:1: ( (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName ) )
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:165:1: (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName )
                    {
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:165:1: (lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName )
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:166:3: lv_auxiliaryScannerName_4_0= ruleAuxiliaryScannerName
                    {
                     
                    	        newCompositeNode(grammarAccess.getSpecificationAccess().getAuxiliaryScannerNameAuxiliaryScannerNameParserRuleCall_2_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleAuxiliaryScannerName_in_ruleSpecification306);
                    lv_auxiliaryScannerName_4_0=ruleAuxiliaryScannerName();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSpecificationRule());
                    	        }
                           		set(
                           			current, 
                           			"auxiliaryScannerName",
                            		lv_auxiliaryScannerName_4_0, 
                            		"AuxiliaryScannerName");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_5=(Token)match(input,20,FOLLOW_20_in_ruleSpecification318); 

                        	newLeafNode(otherlv_5, grammarAccess.getSpecificationAccess().getRightParenthesisKeyword_2_2());
                        

                    }
                    break;

            }

            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:186:3: (otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']' )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==21) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:186:5: otherlv_6= '[' ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) ) otherlv_8= ']'
                    {
                    otherlv_6=(Token)match(input,21,FOLLOW_21_in_ruleSpecification333); 

                        	newLeafNode(otherlv_6, grammarAccess.getSpecificationAccess().getLeftSquareBracketKeyword_3_0());
                        
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:190:1: ( (lv_tokenProcessorName_7_0= ruleTokenProcessorName ) )
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:191:1: (lv_tokenProcessorName_7_0= ruleTokenProcessorName )
                    {
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:191:1: (lv_tokenProcessorName_7_0= ruleTokenProcessorName )
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:192:3: lv_tokenProcessorName_7_0= ruleTokenProcessorName
                    {
                     
                    	        newCompositeNode(grammarAccess.getSpecificationAccess().getTokenProcessorNameTokenProcessorNameParserRuleCall_3_1_0()); 
                    	    
                    pushFollow(FOLLOW_ruleTokenProcessorName_in_ruleSpecification354);
                    lv_tokenProcessorName_7_0=ruleTokenProcessorName();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getSpecificationRule());
                    	        }
                           		set(
                           			current, 
                           			"tokenProcessorName",
                            		lv_tokenProcessorName_7_0, 
                            		"TokenProcessorName");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    otherlv_8=(Token)match(input,22,FOLLOW_22_in_ruleSpecification366); 

                        	newLeafNode(otherlv_8, grammarAccess.getSpecificationAccess().getRightSquareBracketKeyword_3_2());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSpecification"


    // $ANTLR start "entryRulePattern"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:220:1: entryRulePattern returns [EObject current=null] : iv_rulePattern= rulePattern EOF ;
    public final EObject entryRulePattern() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePattern = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:221:2: (iv_rulePattern= rulePattern EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:222:2: iv_rulePattern= rulePattern EOF
            {
             newCompositeNode(grammarAccess.getPatternRule()); 
            pushFollow(FOLLOW_rulePattern_in_entryRulePattern404);
            iv_rulePattern=rulePattern();

            state._fsp--;

             current =iv_rulePattern; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePattern414); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePattern"


    // $ANTLR start "rulePattern"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:229:1: rulePattern returns [EObject current=null] : (this_CannedExpression_0= ruleCannedExpression | this_RegularExpression_1= ruleRegularExpression ) ;
    public final EObject rulePattern() throws RecognitionException {
        EObject current = null;

        EObject this_CannedExpression_0 = null;

        EObject this_RegularExpression_1 = null;


         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:232:28: ( (this_CannedExpression_0= ruleCannedExpression | this_RegularExpression_1= ruleRegularExpression ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:233:1: (this_CannedExpression_0= ruleCannedExpression | this_RegularExpression_1= ruleRegularExpression )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:233:1: (this_CannedExpression_0= ruleCannedExpression | this_RegularExpression_1= ruleRegularExpression )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( ((LA5_0>=23 && LA5_0<=47)) ) {
                alt5=1;
            }
            else if ( (LA5_0==RULE_REGEX) ) {
                alt5=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:234:5: this_CannedExpression_0= ruleCannedExpression
                    {
                     
                            newCompositeNode(grammarAccess.getPatternAccess().getCannedExpressionParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleCannedExpression_in_rulePattern461);
                    this_CannedExpression_0=ruleCannedExpression();

                    state._fsp--;

                     
                            current = this_CannedExpression_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:244:5: this_RegularExpression_1= ruleRegularExpression
                    {
                     
                            newCompositeNode(grammarAccess.getPatternAccess().getRegularExpressionParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleRegularExpression_in_rulePattern488);
                    this_RegularExpression_1=ruleRegularExpression();

                    state._fsp--;

                     
                            current = this_RegularExpression_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePattern"


    // $ANTLR start "entryRuleCannedExpression"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:260:1: entryRuleCannedExpression returns [EObject current=null] : iv_ruleCannedExpression= ruleCannedExpression EOF ;
    public final EObject entryRuleCannedExpression() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleCannedExpression = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:261:2: (iv_ruleCannedExpression= ruleCannedExpression EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:262:2: iv_ruleCannedExpression= ruleCannedExpression EOF
            {
             newCompositeNode(grammarAccess.getCannedExpressionRule()); 
            pushFollow(FOLLOW_ruleCannedExpression_in_entryRuleCannedExpression523);
            iv_ruleCannedExpression=ruleCannedExpression();

            state._fsp--;

             current =iv_ruleCannedExpression; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleCannedExpression533); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleCannedExpression"


    // $ANTLR start "ruleCannedExpression"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:269:1: ruleCannedExpression returns [EObject current=null] : ( ( (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' ) ) ) ;
    public final EObject ruleCannedExpression() throws RecognitionException {
        EObject current = null;

        Token lv_value_0_1=null;
        Token lv_value_0_2=null;
        Token lv_value_0_3=null;
        Token lv_value_0_4=null;
        Token lv_value_0_5=null;
        Token lv_value_0_6=null;
        Token lv_value_0_7=null;
        Token lv_value_0_8=null;
        Token lv_value_0_9=null;
        Token lv_value_0_10=null;
        Token lv_value_0_11=null;
        Token lv_value_0_12=null;
        Token lv_value_0_13=null;
        Token lv_value_0_14=null;
        Token lv_value_0_15=null;
        Token lv_value_0_16=null;
        Token lv_value_0_17=null;
        Token lv_value_0_18=null;
        Token lv_value_0_19=null;
        Token lv_value_0_20=null;
        Token lv_value_0_21=null;
        Token lv_value_0_22=null;
        Token lv_value_0_23=null;
        Token lv_value_0_24=null;
        Token lv_value_0_25=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:272:28: ( ( ( (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' ) ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:273:1: ( ( (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' ) ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:273:1: ( ( (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:274:1: ( (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:274:1: ( (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:275:1: (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:275:1: (lv_value_0_1= 'ADA_COMMENT' | lv_value_0_2= 'ADA_IDENTIFIER' | lv_value_0_3= 'AWK_COMMENT' | lv_value_0_4= 'C_COMMENT' | lv_value_0_5= 'C_CHAR_CONSTANT' | lv_value_0_6= 'C_FLOAT' | lv_value_0_7= 'C_IDENTIFIER' | lv_value_0_8= 'C_INTEGER' | lv_value_0_9= 'C_INT_DENOTATION' | lv_value_0_10= 'C_STRING_LIT' | lv_value_0_11= 'MODULA_INTEGER' | lv_value_0_12= 'MODULA2_COMMENT' | lv_value_0_13= 'MODULA3_COMMENT' | lv_value_0_14= 'MODULA2_CHARINT' | lv_value_0_15= 'MODULA2_INTEGER' | lv_value_0_16= 'MODULA2_LITERALDQ' | lv_value_0_17= 'MODULA2_LITERALSQ' | lv_value_0_18= 'PASCAL_COMMENT' | lv_value_0_19= 'PASCAL_IDENTIFIER' | lv_value_0_20= 'PASCAL_INTEGER' | lv_value_0_21= 'PASCAL_REAL' | lv_value_0_22= 'PASCAL_STRING' | lv_value_0_23= 'SPACES' | lv_value_0_24= 'TAB' | lv_value_0_25= 'NEW_LINE' )
            int alt6=25;
            switch ( input.LA(1) ) {
            case 23:
                {
                alt6=1;
                }
                break;
            case 24:
                {
                alt6=2;
                }
                break;
            case 25:
                {
                alt6=3;
                }
                break;
            case 26:
                {
                alt6=4;
                }
                break;
            case 27:
                {
                alt6=5;
                }
                break;
            case 28:
                {
                alt6=6;
                }
                break;
            case 29:
                {
                alt6=7;
                }
                break;
            case 30:
                {
                alt6=8;
                }
                break;
            case 31:
                {
                alt6=9;
                }
                break;
            case 32:
                {
                alt6=10;
                }
                break;
            case 33:
                {
                alt6=11;
                }
                break;
            case 34:
                {
                alt6=12;
                }
                break;
            case 35:
                {
                alt6=13;
                }
                break;
            case 36:
                {
                alt6=14;
                }
                break;
            case 37:
                {
                alt6=15;
                }
                break;
            case 38:
                {
                alt6=16;
                }
                break;
            case 39:
                {
                alt6=17;
                }
                break;
            case 40:
                {
                alt6=18;
                }
                break;
            case 41:
                {
                alt6=19;
                }
                break;
            case 42:
                {
                alt6=20;
                }
                break;
            case 43:
                {
                alt6=21;
                }
                break;
            case 44:
                {
                alt6=22;
                }
                break;
            case 45:
                {
                alt6=23;
                }
                break;
            case 46:
                {
                alt6=24;
                }
                break;
            case 47:
                {
                alt6=25;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:276:3: lv_value_0_1= 'ADA_COMMENT'
                    {
                    lv_value_0_1=(Token)match(input,23,FOLLOW_23_in_ruleCannedExpression577); 

                            newLeafNode(lv_value_0_1, grammarAccess.getCannedExpressionAccess().getValueADA_COMMENTKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_1, null);
                    	    

                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:288:8: lv_value_0_2= 'ADA_IDENTIFIER'
                    {
                    lv_value_0_2=(Token)match(input,24,FOLLOW_24_in_ruleCannedExpression606); 

                            newLeafNode(lv_value_0_2, grammarAccess.getCannedExpressionAccess().getValueADA_IDENTIFIERKeyword_0_1());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_2, null);
                    	    

                    }
                    break;
                case 3 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:300:8: lv_value_0_3= 'AWK_COMMENT'
                    {
                    lv_value_0_3=(Token)match(input,25,FOLLOW_25_in_ruleCannedExpression635); 

                            newLeafNode(lv_value_0_3, grammarAccess.getCannedExpressionAccess().getValueAWK_COMMENTKeyword_0_2());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_3, null);
                    	    

                    }
                    break;
                case 4 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:312:8: lv_value_0_4= 'C_COMMENT'
                    {
                    lv_value_0_4=(Token)match(input,26,FOLLOW_26_in_ruleCannedExpression664); 

                            newLeafNode(lv_value_0_4, grammarAccess.getCannedExpressionAccess().getValueC_COMMENTKeyword_0_3());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_4, null);
                    	    

                    }
                    break;
                case 5 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:324:8: lv_value_0_5= 'C_CHAR_CONSTANT'
                    {
                    lv_value_0_5=(Token)match(input,27,FOLLOW_27_in_ruleCannedExpression693); 

                            newLeafNode(lv_value_0_5, grammarAccess.getCannedExpressionAccess().getValueC_CHAR_CONSTANTKeyword_0_4());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_5, null);
                    	    

                    }
                    break;
                case 6 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:336:8: lv_value_0_6= 'C_FLOAT'
                    {
                    lv_value_0_6=(Token)match(input,28,FOLLOW_28_in_ruleCannedExpression722); 

                            newLeafNode(lv_value_0_6, grammarAccess.getCannedExpressionAccess().getValueC_FLOATKeyword_0_5());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_6, null);
                    	    

                    }
                    break;
                case 7 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:348:8: lv_value_0_7= 'C_IDENTIFIER'
                    {
                    lv_value_0_7=(Token)match(input,29,FOLLOW_29_in_ruleCannedExpression751); 

                            newLeafNode(lv_value_0_7, grammarAccess.getCannedExpressionAccess().getValueC_IDENTIFIERKeyword_0_6());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_7, null);
                    	    

                    }
                    break;
                case 8 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:360:8: lv_value_0_8= 'C_INTEGER'
                    {
                    lv_value_0_8=(Token)match(input,30,FOLLOW_30_in_ruleCannedExpression780); 

                            newLeafNode(lv_value_0_8, grammarAccess.getCannedExpressionAccess().getValueC_INTEGERKeyword_0_7());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_8, null);
                    	    

                    }
                    break;
                case 9 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:372:8: lv_value_0_9= 'C_INT_DENOTATION'
                    {
                    lv_value_0_9=(Token)match(input,31,FOLLOW_31_in_ruleCannedExpression809); 

                            newLeafNode(lv_value_0_9, grammarAccess.getCannedExpressionAccess().getValueC_INT_DENOTATIONKeyword_0_8());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_9, null);
                    	    

                    }
                    break;
                case 10 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:384:8: lv_value_0_10= 'C_STRING_LIT'
                    {
                    lv_value_0_10=(Token)match(input,32,FOLLOW_32_in_ruleCannedExpression838); 

                            newLeafNode(lv_value_0_10, grammarAccess.getCannedExpressionAccess().getValueC_STRING_LITKeyword_0_9());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_10, null);
                    	    

                    }
                    break;
                case 11 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:396:8: lv_value_0_11= 'MODULA_INTEGER'
                    {
                    lv_value_0_11=(Token)match(input,33,FOLLOW_33_in_ruleCannedExpression867); 

                            newLeafNode(lv_value_0_11, grammarAccess.getCannedExpressionAccess().getValueMODULA_INTEGERKeyword_0_10());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_11, null);
                    	    

                    }
                    break;
                case 12 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:408:8: lv_value_0_12= 'MODULA2_COMMENT'
                    {
                    lv_value_0_12=(Token)match(input,34,FOLLOW_34_in_ruleCannedExpression896); 

                            newLeafNode(lv_value_0_12, grammarAccess.getCannedExpressionAccess().getValueMODULA2_COMMENTKeyword_0_11());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_12, null);
                    	    

                    }
                    break;
                case 13 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:420:8: lv_value_0_13= 'MODULA3_COMMENT'
                    {
                    lv_value_0_13=(Token)match(input,35,FOLLOW_35_in_ruleCannedExpression925); 

                            newLeafNode(lv_value_0_13, grammarAccess.getCannedExpressionAccess().getValueMODULA3_COMMENTKeyword_0_12());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_13, null);
                    	    

                    }
                    break;
                case 14 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:432:8: lv_value_0_14= 'MODULA2_CHARINT'
                    {
                    lv_value_0_14=(Token)match(input,36,FOLLOW_36_in_ruleCannedExpression954); 

                            newLeafNode(lv_value_0_14, grammarAccess.getCannedExpressionAccess().getValueMODULA2_CHARINTKeyword_0_13());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_14, null);
                    	    

                    }
                    break;
                case 15 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:444:8: lv_value_0_15= 'MODULA2_INTEGER'
                    {
                    lv_value_0_15=(Token)match(input,37,FOLLOW_37_in_ruleCannedExpression983); 

                            newLeafNode(lv_value_0_15, grammarAccess.getCannedExpressionAccess().getValueMODULA2_INTEGERKeyword_0_14());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_15, null);
                    	    

                    }
                    break;
                case 16 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:456:8: lv_value_0_16= 'MODULA2_LITERALDQ'
                    {
                    lv_value_0_16=(Token)match(input,38,FOLLOW_38_in_ruleCannedExpression1012); 

                            newLeafNode(lv_value_0_16, grammarAccess.getCannedExpressionAccess().getValueMODULA2_LITERALDQKeyword_0_15());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_16, null);
                    	    

                    }
                    break;
                case 17 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:468:8: lv_value_0_17= 'MODULA2_LITERALSQ'
                    {
                    lv_value_0_17=(Token)match(input,39,FOLLOW_39_in_ruleCannedExpression1041); 

                            newLeafNode(lv_value_0_17, grammarAccess.getCannedExpressionAccess().getValueMODULA2_LITERALSQKeyword_0_16());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_17, null);
                    	    

                    }
                    break;
                case 18 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:480:8: lv_value_0_18= 'PASCAL_COMMENT'
                    {
                    lv_value_0_18=(Token)match(input,40,FOLLOW_40_in_ruleCannedExpression1070); 

                            newLeafNode(lv_value_0_18, grammarAccess.getCannedExpressionAccess().getValuePASCAL_COMMENTKeyword_0_17());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_18, null);
                    	    

                    }
                    break;
                case 19 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:492:8: lv_value_0_19= 'PASCAL_IDENTIFIER'
                    {
                    lv_value_0_19=(Token)match(input,41,FOLLOW_41_in_ruleCannedExpression1099); 

                            newLeafNode(lv_value_0_19, grammarAccess.getCannedExpressionAccess().getValuePASCAL_IDENTIFIERKeyword_0_18());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_19, null);
                    	    

                    }
                    break;
                case 20 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:504:8: lv_value_0_20= 'PASCAL_INTEGER'
                    {
                    lv_value_0_20=(Token)match(input,42,FOLLOW_42_in_ruleCannedExpression1128); 

                            newLeafNode(lv_value_0_20, grammarAccess.getCannedExpressionAccess().getValuePASCAL_INTEGERKeyword_0_19());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_20, null);
                    	    

                    }
                    break;
                case 21 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:516:8: lv_value_0_21= 'PASCAL_REAL'
                    {
                    lv_value_0_21=(Token)match(input,43,FOLLOW_43_in_ruleCannedExpression1157); 

                            newLeafNode(lv_value_0_21, grammarAccess.getCannedExpressionAccess().getValuePASCAL_REALKeyword_0_20());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_21, null);
                    	    

                    }
                    break;
                case 22 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:528:8: lv_value_0_22= 'PASCAL_STRING'
                    {
                    lv_value_0_22=(Token)match(input,44,FOLLOW_44_in_ruleCannedExpression1186); 

                            newLeafNode(lv_value_0_22, grammarAccess.getCannedExpressionAccess().getValuePASCAL_STRINGKeyword_0_21());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_22, null);
                    	    

                    }
                    break;
                case 23 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:540:8: lv_value_0_23= 'SPACES'
                    {
                    lv_value_0_23=(Token)match(input,45,FOLLOW_45_in_ruleCannedExpression1215); 

                            newLeafNode(lv_value_0_23, grammarAccess.getCannedExpressionAccess().getValueSPACESKeyword_0_22());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_23, null);
                    	    

                    }
                    break;
                case 24 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:552:8: lv_value_0_24= 'TAB'
                    {
                    lv_value_0_24=(Token)match(input,46,FOLLOW_46_in_ruleCannedExpression1244); 

                            newLeafNode(lv_value_0_24, grammarAccess.getCannedExpressionAccess().getValueTABKeyword_0_23());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_24, null);
                    	    

                    }
                    break;
                case 25 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:564:8: lv_value_0_25= 'NEW_LINE'
                    {
                    lv_value_0_25=(Token)match(input,47,FOLLOW_47_in_ruleCannedExpression1273); 

                            newLeafNode(lv_value_0_25, grammarAccess.getCannedExpressionAccess().getValueNEW_LINEKeyword_0_24());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getCannedExpressionRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_25, null);
                    	    

                    }
                    break;

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCannedExpression"


    // $ANTLR start "entryRuleRegularExpression"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:587:1: entryRuleRegularExpression returns [EObject current=null] : iv_ruleRegularExpression= ruleRegularExpression EOF ;
    public final EObject entryRuleRegularExpression() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleRegularExpression = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:588:2: (iv_ruleRegularExpression= ruleRegularExpression EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:589:2: iv_ruleRegularExpression= ruleRegularExpression EOF
            {
             newCompositeNode(grammarAccess.getRegularExpressionRule()); 
            pushFollow(FOLLOW_ruleRegularExpression_in_entryRuleRegularExpression1324);
            iv_ruleRegularExpression=ruleRegularExpression();

            state._fsp--;

             current =iv_ruleRegularExpression; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleRegularExpression1334); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleRegularExpression"


    // $ANTLR start "ruleRegularExpression"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:596:1: ruleRegularExpression returns [EObject current=null] : ( (lv_value_0_0= RULE_REGEX ) ) ;
    public final EObject ruleRegularExpression() throws RecognitionException {
        EObject current = null;

        Token lv_value_0_0=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:599:28: ( ( (lv_value_0_0= RULE_REGEX ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:600:1: ( (lv_value_0_0= RULE_REGEX ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:600:1: ( (lv_value_0_0= RULE_REGEX ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:601:1: (lv_value_0_0= RULE_REGEX )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:601:1: (lv_value_0_0= RULE_REGEX )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:602:3: lv_value_0_0= RULE_REGEX
            {
            lv_value_0_0=(Token)match(input,RULE_REGEX,FOLLOW_RULE_REGEX_in_ruleRegularExpression1375); 

            			newLeafNode(lv_value_0_0, grammarAccess.getRegularExpressionAccess().getValueREGEXTerminalRuleCall_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getRegularExpressionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"value",
                    		lv_value_0_0, 
                    		"REGEX");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleRegularExpression"


    // $ANTLR start "entryRuleTokenName"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:626:1: entryRuleTokenName returns [EObject current=null] : iv_ruleTokenName= ruleTokenName EOF ;
    public final EObject entryRuleTokenName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTokenName = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:627:2: (iv_ruleTokenName= ruleTokenName EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:628:2: iv_ruleTokenName= ruleTokenName EOF
            {
             newCompositeNode(grammarAccess.getTokenNameRule()); 
            pushFollow(FOLLOW_ruleTokenName_in_entryRuleTokenName1415);
            iv_ruleTokenName=ruleTokenName();

            state._fsp--;

             current =iv_ruleTokenName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTokenName1425); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTokenName"


    // $ANTLR start "ruleTokenName"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:635:1: ruleTokenName returns [EObject current=null] : ( (lv_name_0_0= RULE_IDENTIFIER ) ) ;
    public final EObject ruleTokenName() throws RecognitionException {
        EObject current = null;

        Token lv_name_0_0=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:638:28: ( ( (lv_name_0_0= RULE_IDENTIFIER ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:639:1: ( (lv_name_0_0= RULE_IDENTIFIER ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:639:1: ( (lv_name_0_0= RULE_IDENTIFIER ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:640:1: (lv_name_0_0= RULE_IDENTIFIER )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:640:1: (lv_name_0_0= RULE_IDENTIFIER )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:641:3: lv_name_0_0= RULE_IDENTIFIER
            {
            lv_name_0_0=(Token)match(input,RULE_IDENTIFIER,FOLLOW_RULE_IDENTIFIER_in_ruleTokenName1466); 

            			newLeafNode(lv_name_0_0, grammarAccess.getTokenNameAccess().getNameIDENTIFIERTerminalRuleCall_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getTokenNameRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_0_0, 
                    		"IDENTIFIER");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTokenName"


    // $ANTLR start "entryRuleAuxiliaryScannerName"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:665:1: entryRuleAuxiliaryScannerName returns [EObject current=null] : iv_ruleAuxiliaryScannerName= ruleAuxiliaryScannerName EOF ;
    public final EObject entryRuleAuxiliaryScannerName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAuxiliaryScannerName = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:666:2: (iv_ruleAuxiliaryScannerName= ruleAuxiliaryScannerName EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:667:2: iv_ruleAuxiliaryScannerName= ruleAuxiliaryScannerName EOF
            {
             newCompositeNode(grammarAccess.getAuxiliaryScannerNameRule()); 
            pushFollow(FOLLOW_ruleAuxiliaryScannerName_in_entryRuleAuxiliaryScannerName1506);
            iv_ruleAuxiliaryScannerName=ruleAuxiliaryScannerName();

            state._fsp--;

             current =iv_ruleAuxiliaryScannerName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAuxiliaryScannerName1516); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAuxiliaryScannerName"


    // $ANTLR start "ruleAuxiliaryScannerName"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:674:1: ruleAuxiliaryScannerName returns [EObject current=null] : ( ( (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' ) ) ) ;
    public final EObject ruleAuxiliaryScannerName() throws RecognitionException {
        EObject current = null;

        Token lv_value_0_1=null;
        Token lv_value_0_2=null;
        Token lv_value_0_3=null;
        Token lv_value_0_4=null;
        Token lv_value_0_5=null;
        Token lv_value_0_6=null;
        Token lv_value_0_7=null;
        Token lv_value_0_8=null;
        Token lv_value_0_9=null;
        Token lv_value_0_10=null;
        Token lv_value_0_11=null;
        Token lv_value_0_12=null;
        Token lv_value_0_13=null;
        Token lv_value_0_14=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:677:28: ( ( ( (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' ) ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:678:1: ( ( (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' ) ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:678:1: ( ( (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:679:1: ( (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:679:1: ( (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:680:1: (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:680:1: (lv_value_0_1= 'auxEOF' | lv_value_0_2= 'coordAdjust' | lv_value_0_3= 'auxNewLine' | lv_value_0_4= 'auxTab' | lv_value_0_5= 'auxEOL' | lv_value_0_6= 'auxPascalString' | lv_value_0_7= 'auxPascalComment' | lv_value_0_8= 'auxNoEOL' | lv_value_0_9= 'auxCString' | lv_value_0_10= 'auxCChar' | lv_value_0_11= 'auxCComment' | lv_value_0_12= 'auxM2String' | lv_value_0_13= 'auxM3Comment' | lv_value_0_14= 'Ctext' )
            int alt7=14;
            switch ( input.LA(1) ) {
            case 48:
                {
                alt7=1;
                }
                break;
            case 49:
                {
                alt7=2;
                }
                break;
            case 50:
                {
                alt7=3;
                }
                break;
            case 51:
                {
                alt7=4;
                }
                break;
            case 52:
                {
                alt7=5;
                }
                break;
            case 53:
                {
                alt7=6;
                }
                break;
            case 54:
                {
                alt7=7;
                }
                break;
            case 55:
                {
                alt7=8;
                }
                break;
            case 56:
                {
                alt7=9;
                }
                break;
            case 57:
                {
                alt7=10;
                }
                break;
            case 58:
                {
                alt7=11;
                }
                break;
            case 59:
                {
                alt7=12;
                }
                break;
            case 60:
                {
                alt7=13;
                }
                break;
            case 61:
                {
                alt7=14;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 7, 0, input);

                throw nvae;
            }

            switch (alt7) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:681:3: lv_value_0_1= 'auxEOF'
                    {
                    lv_value_0_1=(Token)match(input,48,FOLLOW_48_in_ruleAuxiliaryScannerName1560); 

                            newLeafNode(lv_value_0_1, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxEOFKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_1, null);
                    	    

                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:693:8: lv_value_0_2= 'coordAdjust'
                    {
                    lv_value_0_2=(Token)match(input,49,FOLLOW_49_in_ruleAuxiliaryScannerName1589); 

                            newLeafNode(lv_value_0_2, grammarAccess.getAuxiliaryScannerNameAccess().getValueCoordAdjustKeyword_0_1());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_2, null);
                    	    

                    }
                    break;
                case 3 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:705:8: lv_value_0_3= 'auxNewLine'
                    {
                    lv_value_0_3=(Token)match(input,50,FOLLOW_50_in_ruleAuxiliaryScannerName1618); 

                            newLeafNode(lv_value_0_3, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxNewLineKeyword_0_2());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_3, null);
                    	    

                    }
                    break;
                case 4 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:717:8: lv_value_0_4= 'auxTab'
                    {
                    lv_value_0_4=(Token)match(input,51,FOLLOW_51_in_ruleAuxiliaryScannerName1647); 

                            newLeafNode(lv_value_0_4, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxTabKeyword_0_3());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_4, null);
                    	    

                    }
                    break;
                case 5 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:729:8: lv_value_0_5= 'auxEOL'
                    {
                    lv_value_0_5=(Token)match(input,52,FOLLOW_52_in_ruleAuxiliaryScannerName1676); 

                            newLeafNode(lv_value_0_5, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxEOLKeyword_0_4());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_5, null);
                    	    

                    }
                    break;
                case 6 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:741:8: lv_value_0_6= 'auxPascalString'
                    {
                    lv_value_0_6=(Token)match(input,53,FOLLOW_53_in_ruleAuxiliaryScannerName1705); 

                            newLeafNode(lv_value_0_6, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxPascalStringKeyword_0_5());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_6, null);
                    	    

                    }
                    break;
                case 7 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:753:8: lv_value_0_7= 'auxPascalComment'
                    {
                    lv_value_0_7=(Token)match(input,54,FOLLOW_54_in_ruleAuxiliaryScannerName1734); 

                            newLeafNode(lv_value_0_7, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxPascalCommentKeyword_0_6());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_7, null);
                    	    

                    }
                    break;
                case 8 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:765:8: lv_value_0_8= 'auxNoEOL'
                    {
                    lv_value_0_8=(Token)match(input,55,FOLLOW_55_in_ruleAuxiliaryScannerName1763); 

                            newLeafNode(lv_value_0_8, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxNoEOLKeyword_0_7());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_8, null);
                    	    

                    }
                    break;
                case 9 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:777:8: lv_value_0_9= 'auxCString'
                    {
                    lv_value_0_9=(Token)match(input,56,FOLLOW_56_in_ruleAuxiliaryScannerName1792); 

                            newLeafNode(lv_value_0_9, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxCStringKeyword_0_8());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_9, null);
                    	    

                    }
                    break;
                case 10 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:789:8: lv_value_0_10= 'auxCChar'
                    {
                    lv_value_0_10=(Token)match(input,57,FOLLOW_57_in_ruleAuxiliaryScannerName1821); 

                            newLeafNode(lv_value_0_10, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxCCharKeyword_0_9());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_10, null);
                    	    

                    }
                    break;
                case 11 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:801:8: lv_value_0_11= 'auxCComment'
                    {
                    lv_value_0_11=(Token)match(input,58,FOLLOW_58_in_ruleAuxiliaryScannerName1850); 

                            newLeafNode(lv_value_0_11, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxCCommentKeyword_0_10());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_11, null);
                    	    

                    }
                    break;
                case 12 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:813:8: lv_value_0_12= 'auxM2String'
                    {
                    lv_value_0_12=(Token)match(input,59,FOLLOW_59_in_ruleAuxiliaryScannerName1879); 

                            newLeafNode(lv_value_0_12, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxM2StringKeyword_0_11());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_12, null);
                    	    

                    }
                    break;
                case 13 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:825:8: lv_value_0_13= 'auxM3Comment'
                    {
                    lv_value_0_13=(Token)match(input,60,FOLLOW_60_in_ruleAuxiliaryScannerName1908); 

                            newLeafNode(lv_value_0_13, grammarAccess.getAuxiliaryScannerNameAccess().getValueAuxM3CommentKeyword_0_12());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_13, null);
                    	    

                    }
                    break;
                case 14 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:837:8: lv_value_0_14= 'Ctext'
                    {
                    lv_value_0_14=(Token)match(input,61,FOLLOW_61_in_ruleAuxiliaryScannerName1937); 

                            newLeafNode(lv_value_0_14, grammarAccess.getAuxiliaryScannerNameAccess().getValueCtextKeyword_0_13());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getAuxiliaryScannerNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_14, null);
                    	    

                    }
                    break;

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAuxiliaryScannerName"


    // $ANTLR start "entryRuleTokenProcessorName"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:860:1: entryRuleTokenProcessorName returns [EObject current=null] : iv_ruleTokenProcessorName= ruleTokenProcessorName EOF ;
    public final EObject entryRuleTokenProcessorName() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleTokenProcessorName = null;


        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:861:2: (iv_ruleTokenProcessorName= ruleTokenProcessorName EOF )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:862:2: iv_ruleTokenProcessorName= ruleTokenProcessorName EOF
            {
             newCompositeNode(grammarAccess.getTokenProcessorNameRule()); 
            pushFollow(FOLLOW_ruleTokenProcessorName_in_entryRuleTokenProcessorName1988);
            iv_ruleTokenProcessorName=ruleTokenProcessorName();

            state._fsp--;

             current =iv_ruleTokenProcessorName; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleTokenProcessorName1998); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleTokenProcessorName"


    // $ANTLR start "ruleTokenProcessorName"
    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:869:1: ruleTokenProcessorName returns [EObject current=null] : ( ( (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' ) ) ) ;
    public final EObject ruleTokenProcessorName() throws RecognitionException {
        EObject current = null;

        Token lv_value_0_1=null;
        Token lv_value_0_2=null;
        Token lv_value_0_3=null;
        Token lv_value_0_4=null;
        Token lv_value_0_5=null;
        Token lv_value_0_6=null;
        Token lv_value_0_7=null;
        Token lv_value_0_8=null;
        Token lv_value_0_9=null;

         enterRule(); 
            
        try {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:872:28: ( ( ( (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' ) ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:873:1: ( ( (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' ) ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:873:1: ( ( (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' ) ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:874:1: ( (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' ) )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:874:1: ( (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' ) )
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:875:1: (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' )
            {
            // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:875:1: (lv_value_0_1= 'c_mkchar' | lv_value_0_2= 'c_mkint' | lv_value_0_3= 'c_mkstr' | lv_value_0_4= 'EndOfText' | lv_value_0_5= 'lexerr' | lv_value_0_6= 'mkidn' | lv_value_0_7= 'mkint' | lv_value_0_8= 'mkstr' | lv_value_0_9= 'modula_mkint' )
            int alt8=9;
            switch ( input.LA(1) ) {
            case 62:
                {
                alt8=1;
                }
                break;
            case 63:
                {
                alt8=2;
                }
                break;
            case 64:
                {
                alt8=3;
                }
                break;
            case 65:
                {
                alt8=4;
                }
                break;
            case 66:
                {
                alt8=5;
                }
                break;
            case 67:
                {
                alt8=6;
                }
                break;
            case 68:
                {
                alt8=7;
                }
                break;
            case 69:
                {
                alt8=8;
                }
                break;
            case 70:
                {
                alt8=9;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 8, 0, input);

                throw nvae;
            }

            switch (alt8) {
                case 1 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:876:3: lv_value_0_1= 'c_mkchar'
                    {
                    lv_value_0_1=(Token)match(input,62,FOLLOW_62_in_ruleTokenProcessorName2042); 

                            newLeafNode(lv_value_0_1, grammarAccess.getTokenProcessorNameAccess().getValueC_mkcharKeyword_0_0());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_1, null);
                    	    

                    }
                    break;
                case 2 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:888:8: lv_value_0_2= 'c_mkint'
                    {
                    lv_value_0_2=(Token)match(input,63,FOLLOW_63_in_ruleTokenProcessorName2071); 

                            newLeafNode(lv_value_0_2, grammarAccess.getTokenProcessorNameAccess().getValueC_mkintKeyword_0_1());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_2, null);
                    	    

                    }
                    break;
                case 3 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:900:8: lv_value_0_3= 'c_mkstr'
                    {
                    lv_value_0_3=(Token)match(input,64,FOLLOW_64_in_ruleTokenProcessorName2100); 

                            newLeafNode(lv_value_0_3, grammarAccess.getTokenProcessorNameAccess().getValueC_mkstrKeyword_0_2());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_3, null);
                    	    

                    }
                    break;
                case 4 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:912:8: lv_value_0_4= 'EndOfText'
                    {
                    lv_value_0_4=(Token)match(input,65,FOLLOW_65_in_ruleTokenProcessorName2129); 

                            newLeafNode(lv_value_0_4, grammarAccess.getTokenProcessorNameAccess().getValueEndOfTextKeyword_0_3());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_4, null);
                    	    

                    }
                    break;
                case 5 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:924:8: lv_value_0_5= 'lexerr'
                    {
                    lv_value_0_5=(Token)match(input,66,FOLLOW_66_in_ruleTokenProcessorName2158); 

                            newLeafNode(lv_value_0_5, grammarAccess.getTokenProcessorNameAccess().getValueLexerrKeyword_0_4());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_5, null);
                    	    

                    }
                    break;
                case 6 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:936:8: lv_value_0_6= 'mkidn'
                    {
                    lv_value_0_6=(Token)match(input,67,FOLLOW_67_in_ruleTokenProcessorName2187); 

                            newLeafNode(lv_value_0_6, grammarAccess.getTokenProcessorNameAccess().getValueMkidnKeyword_0_5());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_6, null);
                    	    

                    }
                    break;
                case 7 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:948:8: lv_value_0_7= 'mkint'
                    {
                    lv_value_0_7=(Token)match(input,68,FOLLOW_68_in_ruleTokenProcessorName2216); 

                            newLeafNode(lv_value_0_7, grammarAccess.getTokenProcessorNameAccess().getValueMkintKeyword_0_6());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_7, null);
                    	    

                    }
                    break;
                case 8 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:960:8: lv_value_0_8= 'mkstr'
                    {
                    lv_value_0_8=(Token)match(input,69,FOLLOW_69_in_ruleTokenProcessorName2245); 

                            newLeafNode(lv_value_0_8, grammarAccess.getTokenProcessorNameAccess().getValueMkstrKeyword_0_7());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_8, null);
                    	    

                    }
                    break;
                case 9 :
                    // ../de.sabram.upb.specs.gla/src-gen/de/sabram/upb/specs/parser/antlr/internal/InternalGla.g:972:8: lv_value_0_9= 'modula_mkint'
                    {
                    lv_value_0_9=(Token)match(input,70,FOLLOW_70_in_ruleTokenProcessorName2274); 

                            newLeafNode(lv_value_0_9, grammarAccess.getTokenProcessorNameAccess().getValueModula_mkintKeyword_0_8());
                        

                    	        if (current==null) {
                    	            current = createModelElement(grammarAccess.getTokenProcessorNameRule());
                    	        }
                           		setWithLastConsumed(current, "value", lv_value_0_9, null);
                    	    

                    }
                    break;

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTokenProcessorName"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleFile_in_entryRuleFile81 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleFile91 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSpecification_in_ruleFile140 = new BitSet(new long[]{0x0000FFFFFF800032L});
    public static final BitSet FOLLOW_ruleSpecification_in_entryRuleSpecification180 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSpecification190 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTokenName_in_ruleSpecification238 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_18_in_ruleSpecification249 = new BitSet(new long[]{0x0000FFFFFFA80030L});
    public static final BitSet FOLLOW_rulePattern_in_ruleSpecification272 = new BitSet(new long[]{0x0000000000280002L});
    public static final BitSet FOLLOW_19_in_ruleSpecification285 = new BitSet(new long[]{0x3FFF000000000000L});
    public static final BitSet FOLLOW_ruleAuxiliaryScannerName_in_ruleSpecification306 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_20_in_ruleSpecification318 = new BitSet(new long[]{0x0000000000200002L});
    public static final BitSet FOLLOW_21_in_ruleSpecification333 = new BitSet(new long[]{0xC000000000000000L,0x000000000000007FL});
    public static final BitSet FOLLOW_ruleTokenProcessorName_in_ruleSpecification354 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleSpecification366 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePattern_in_entryRulePattern404 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePattern414 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCannedExpression_in_rulePattern461 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRegularExpression_in_rulePattern488 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleCannedExpression_in_entryRuleCannedExpression523 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleCannedExpression533 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_23_in_ruleCannedExpression577 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_ruleCannedExpression606 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_ruleCannedExpression635 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_ruleCannedExpression664 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_ruleCannedExpression693 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleCannedExpression722 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_ruleCannedExpression751 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_30_in_ruleCannedExpression780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_31_in_ruleCannedExpression809 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_ruleCannedExpression838 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_ruleCannedExpression867 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_ruleCannedExpression896 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_ruleCannedExpression925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleCannedExpression954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_ruleCannedExpression983 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_ruleCannedExpression1012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_ruleCannedExpression1041 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_ruleCannedExpression1070 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleCannedExpression1099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleCannedExpression1128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_ruleCannedExpression1157 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_ruleCannedExpression1186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_ruleCannedExpression1215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleCannedExpression1244 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_ruleCannedExpression1273 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleRegularExpression_in_entryRuleRegularExpression1324 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleRegularExpression1334 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_REGEX_in_ruleRegularExpression1375 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTokenName_in_entryRuleTokenName1415 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTokenName1425 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_IDENTIFIER_in_ruleTokenName1466 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAuxiliaryScannerName_in_entryRuleAuxiliaryScannerName1506 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAuxiliaryScannerName1516 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_ruleAuxiliaryScannerName1560 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_ruleAuxiliaryScannerName1589 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_ruleAuxiliaryScannerName1618 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_ruleAuxiliaryScannerName1647 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_ruleAuxiliaryScannerName1676 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_ruleAuxiliaryScannerName1705 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_ruleAuxiliaryScannerName1734 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_ruleAuxiliaryScannerName1763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_ruleAuxiliaryScannerName1792 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_ruleAuxiliaryScannerName1821 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_ruleAuxiliaryScannerName1850 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_ruleAuxiliaryScannerName1879 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_ruleAuxiliaryScannerName1908 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_ruleAuxiliaryScannerName1937 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleTokenProcessorName_in_entryRuleTokenProcessorName1988 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleTokenProcessorName1998 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_62_in_ruleTokenProcessorName2042 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_ruleTokenProcessorName2071 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_64_in_ruleTokenProcessorName2100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_65_in_ruleTokenProcessorName2129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_66_in_ruleTokenProcessorName2158 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_67_in_ruleTokenProcessorName2187 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_68_in_ruleTokenProcessorName2216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_69_in_ruleTokenProcessorName2245 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_ruleTokenProcessorName2274 = new BitSet(new long[]{0x0000000000000002L});

}